/*****************************************************************************************
 * FILE NAME: typedefs                       COPYRIGHT (c) cos 2024
 * REVISION:  1.0.0                                     All Rights Reserved
 * DESCRIPTION:
 * =======================================================================================
 * UPDATE HISTORY:
 * REV      AUTHOR      DATE
 * v1.0.0   Tuxin       2024.10.14
 * DESCRIPTION OF CHANGE:
 ****************************************************************************************/
#ifndef __TYPEDEFS_H
#define __TYPEDEFS_H

//----------------------------------------------------------------------------------------
// @Project Includes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <stdint.h>
#include <math.h>
#include <ctype.h>

#include "n32l40x.h"

//----------------------------------------------------------------------------------------
// @Global Macro Define in the module
#define SYSCLK_HSI_PLL       				(0)/* 内部时钟*/
#define SYSCLK_HSE_PLL       				(1)/* 外部时钟*/
#define SYSCLK_TYPE  								(SYSCLK_HSE_PLL)/*默认外部时钟，使用内部时钟需更改 SYSCLK_FREQ &SYSCLK_SRC*/

//#define true            					(1)
//#define false                    	(0)

//#define  TRUE                			(1)
//#define  FALSE               			(0)

#define  BMS_HW_VERSION      				("COS_HSI16S040_RS_Y_V0.01")
#define  BMS_SW_VERSION      				("COS_BMS_15S_App_V0.01")

#define BOOTLOADER_VERSION 					("N32L40x_v0.1")

//----------------------------------------------------------------------------------------
// @Global Type defines in the module
typedef void         								(*func_ptr_t)(void);

typedef unsigned char 							uint8_t;
typedef unsigned short 							uint16_t;
typedef unsigned int  							uint32_t;
typedef unsigned long long 					uint64_t;

typedef signed char 								int8_t;
typedef signed short 								int16_t;
typedef signed int  								int32_t;
typedef signed long long 						int64_t;

/* BSW²ãÊý¾ÝÀàÐÍ¶¨Òå  */
typedef  uint8_t                  	bool_t;
typedef  volatile int8_t          	vint8_t;
typedef  volatile int16_t         	vint16_t;
typedef  volatile int32_t         	vint32_t;
typedef  volatile int64_t         	vint64_t;

typedef  volatile uint8_t         	vuint8_t;
typedef  volatile uint16_t        	vuint16_t;
typedef  volatile uint32_t        	vuint32_t;
typedef  volatile uint64_t        	vuint64_t;
typedef  float                    	float_t;

//----------------------------------------------------------------------------------------
// @Export global Variables declare in the module

//----------------------------------------------------------------------------------------
// @Export declaration of functions in the module

#endif

// =======================================================================================
// End of file.
// =======================================================================================
